// 1823 [暴力模拟is_sorted]剔一排序Ⅲ
// http://oj.rnd.huawei.com/problems/1823/details
// 数组已经是有序的，则不做处理，返回数组中最小的元素值。
// 如果数组不是有序的，
// 若删除其中一个元素，使得剩余元素是有序的，返回需要删除的元素值；
// 如果存在多个解，则选择删除元素值最小的。
// 若无解，返回-1
// 输入 2
// 1 2
// 输出 1

#include <algorithm>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
using namespace std;
class Solution {
 public:
  // 待实现函数，在此函数中填入答题代码;
  int SortByDeleteOne(const vector<int> &Nums) {
    const static int MAX_value = 0x6fffffff;
    int minVal = MAX_value;
    for (size_t i = 0; i < Nums.size(); i++) {
      vector<int> vtNew(Nums);
      vtNew.erase(vtNew.begin() + i);
      if (std::is_sorted(vtNew.begin(), vtNew.end()) ||
          std::is_sorted(vtNew.begin(), vtNew.end(), greater<int>())) {
        minVal = min(minVal, Nums[i]);
      }
    }
    return minVal == MAX_value ? -1 : minVal;
  }
};
// ===================
inline int ReadInt() {
  int number;
  cin >> number;
  return number;
}

template <typename T>
inline vector<T> ReadVector(int size) {
  vector<T> objects(size);
  for (int i = 0; i < size; ++i) {
    cin >> objects[i];
  }
  return objects;
}

int main() {
  int NumsNum = 30;
  NumsNum = ReadInt();
  vector<int> Nums = {1,   1,   2,   3,   18,  23,  28,  32,  4,   37,
                      58,  67,  70,  72,  85,  92,  98,  102, 108, 109,
                      112, 115, 116, 135, 142, 154, 157, 164, 171, 188};
  Nums = ReadVector<int>(NumsNum);

  Solution solu;
  int result = solu.SortByDeleteOne(Nums);
  cout << result << endl;
  return 0;
}
